Designing an object-oriented system typically requires identifying one or more analysis classes. Known techniques for identifying analysis classes may involve a grammatical parsing process that is subjective and involves multiple steps. For example, in current practice, developers identify classes by grammatically parsing textual requirements in a system use case (i.e., a flow of events) for nouns and noun clauses. Once classes are identified, developers parse the flow of events to identify operations for each class by looking for verbs that relate to the nouns corresponding to the classes. Developers then parse the flow of events for items related to the nouns to identify the attributes of the classes. Each of these parsing steps may require some subjectivity. The subjectivity associated with some known techniques for developing object-oriented systems may be unsatisfactory in certain situations.